/*
 * ProxClone : Proximity Clone, a war of numbers
 * Copyright (C) 2011-2011 Edi Ermawan <edi.ermawan@gmail.Com>
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 */
#ifndef _GRAPH_UTIL_
#define _GRAPH_UTIL_

#include <iostream>

#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>

#include <string>
#include <vector>

using namespace std;




class GraphicsUtil
{
private:
	SDL_Surface* surface[100];
	static GraphicsUtil* mInstance;
	std::vector<SDL_Surface*> mSDL_Surface_Container;
public:
	GraphicsUtil();
	virtual ~GraphicsUtil();
	static GraphicsUtil& getInstance();
	SDL_Surface* Create_SDLSurface(const char* ImgFile,int R, int G, int B);
	SDL_Surface* Create_SDLSurface(const char* ImgFile,bool isAddToContainer);
	bool Render_SDLSurface(SDL_Surface* dest, SDL_Surface* src, int x, int y);
	void DrawText(SDL_Surface* screen, string text, int size=36, Sint16 x=100, Sint16 y=100, Uint8 red=255, Uint8 green=255, Uint8 blue=255, bool center=true);
	void DrawNumber(SDL_Surface* screen,unsigned int number,Sint16 x, Sint16 y);
	void ClearSDLSurfaces();

};
#endif